package com.mydomain.Bodega;
// Generated 04-sep-2009 21:36:08 by Hibernate Tools 3.2.2.GA

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;

/**
 * Subdepartamento generated by hbm2java
 */
@Entity
@Table(name = "subdepartamento", schema = "public")
public class Subdepartamento implements java.io.Serializable {

	private int subdepCodigo;
	private Usuario usuario;
	private Departamento departamento;
	private String descripcion;
	private String encargado;
	private String telefono;
	private Set<InvEgreso> invEgresos = new HashSet<InvEgreso>(0);
	private Set<InvCompras> invComprases = new HashSet<InvCompras>(0);
	private Set<InvIngreso> invIngresos = new HashSet<InvIngreso>(0);
	private Set<InvDevolucion> invDevolucions = new HashSet<InvDevolucion>(0);

	public Subdepartamento() {
	}

	public Subdepartamento(int subdepCodigo) {
		this.subdepCodigo = subdepCodigo;
	}
	public Subdepartamento(int subdepCodigo, Usuario usuario,
			Departamento departamento, String descripcion, String encargado,
			String telefono, Set<InvEgreso> invEgresos,
			Set<InvCompras> invComprases, Set<InvIngreso> invIngresos,
			Set<InvDevolucion> invDevolucions) {
		this.subdepCodigo = subdepCodigo;
		this.usuario = usuario;
		this.departamento = departamento;
		this.descripcion = descripcion;
		this.encargado = encargado;
		this.telefono = telefono;
		this.invEgresos = invEgresos;
		this.invComprases = invComprases;
		this.invIngresos = invIngresos;
		this.invDevolucions = invDevolucions;
	}

	@Id
	@Column(name = "subdep_codigo", unique = true, nullable = false, precision = 5, scale = 0)
	@NotNull
	@GeneratedValue(strategy=GenerationType.AUTO)
	public int getSubdepCodigo() {
		return this.subdepCodigo;
	}

	public void setSubdepCodigo(int subdepCodigo) {
		this.subdepCodigo = subdepCodigo;
	}
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "usu_codigo")
	public Usuario getUsuario() {
		return this.usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "dep_codigo")
	public Departamento getDepartamento() {
		return this.departamento;
	}

	public void setDepartamento(Departamento departamento) {
		this.departamento = departamento;
	}

	@Column(name = "descripcion", length = 50)
	@Length(max = 50)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@Column(name = "encargado", length = 50)
	@Length(max = 50)
	public String getEncargado() {
		return this.encargado;
	}

	public void setEncargado(String encargado) {
		this.encargado = encargado;
	}

	@Column(name = "telefono", length = 7)
	@Length(max = 7)
	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "subdepartamento")
	public Set<InvEgreso> getInvEgresos() {
		return this.invEgresos;
	}

	public void setInvEgresos(Set<InvEgreso> invEgresos) {
		this.invEgresos = invEgresos;
	}
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "subdepartamento")
	public Set<InvCompras> getInvComprases() {
		return this.invComprases;
	}

	public void setInvComprases(Set<InvCompras> invComprases) {
		this.invComprases = invComprases;
	}
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "subdepartamento")
	public Set<InvIngreso> getInvIngresos() {
		return this.invIngresos;
	}

	public void setInvIngresos(Set<InvIngreso> invIngresos) {
		this.invIngresos = invIngresos;
	}
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "subdepartamento")
	public Set<InvDevolucion> getInvDevolucions() {
		return this.invDevolucions;
	}

	public void setInvDevolucions(Set<InvDevolucion> invDevolucions) {
		this.invDevolucions = invDevolucions;
	}

}
